package master

import (
	"encoding/json"
	"io/ioutil"
)

type Config struct {
	ApiPort         int      `json:"apiPort"`
	ApiReadTimeout  int      `json:"apiReadTimeout"`
	ApiWriteTimeout int      `json:"apiWriteTimeout"`
	EtcdEndpoints   []string `json:"etcdEndpoints"`
	EtcdDialTimeout int      `json:"etcdDialTimeout"`
}

// G_config 单例
var G_config *Config

// InitConfig 加载配置
func InitConfig(filename string) (err error) {
	var content []byte
	var conf Config

	// 读取配置文件
	if content, err = ioutil.ReadFile(filename); err != nil {
		return err
	}

	// json 反序列化
	if err = json.Unmarshal(content, &conf); err != nil {
		return err
	}

	// 复制单例
	G_config = &conf

	return err
}
